<?php
//=====================================================
// 共通関数
// tsubasa 2012/11/16
//=====================================================

/**
 * 危険なパラメータをエスケープする。
 * @author tsubasa 2012/11/16
 * */
function getSafeParameter($pageParameter) {
	$pageParameter = str_replace("'", "", $pageParameter);
	$pageParameter = str_replace(" ", "", $pageParameter);
	$pageParameter = str_replace("　", "", $pageParameter);
	$pageParameter = str_replace("\\", "", $pageParameter);
	$pageParameter = str_replace("/", "", $pageParameter);
	$pageParameter = str_replace("\"", "", $pageParameter);
	$pageParameter = str_replace("\'", "", $pageParameter);
	$pageParameter = str_replace("=", "", $pageParameter);
	$pageParameter = str_ireplace("AND", "", $pageParameter);
	$pageParameter = str_ireplace("OR", "", $pageParameter);
	$pageParameter = str_ireplace("UNION", "", $pageParameter);
	$pageParameter = str_ireplace("SELECT", "", $pageParameter);
	$pageParameter = str_ireplace("UPDATE", "", $pageParameter);
	$pageParameter = str_ireplace("INSERT", "", $pageParameter);
	$pageParameter = str_ireplace("DELETE", "", $pageParameter);
	return $pageParameter;
}

/**
 * ページング情報表示、以下のような文字列を作成する
 * 「該当するデータは1,024件です。 21 - 30 件のデータを表示する。」
 * 
 * @author tsubasa 2012/12/20
 * */
function pagingHeadHtml($count, $show, $page, $data_name = "データ", $count_name = "件") {
	$page_str = '<span class="style8">';
	$page_str .= "該当する".$data_name."は";
	$page_str .= '<span class="style81">&nbsp;'.number_format($count).'&nbsp;</span>'.$count_name."です。&nbsp;";
	if($count > 0) {
		$start = ($page - 1) * $show + 1;
		$end = $start -1 + $show;
		if($end > $count) {
			$end = $count;
		}
		$page_str .= "$start&nbsp;-&nbsp;$end&nbsp;$count_nameの".$count_name."を表示します。";
	}
	$page_str .= '</span>';
	return $page_str;
}

/**
 * 文字列は正しいIPアドラスかどうか
 * @author tsubasa 2012/11/16
 * */
function is_ip($input_ip) {
	$ip_ary = explode(".", $input_ip);
	if(count($ip_ary) != 4) {
		return false;
	}
	for($i = 0; $i < 4; $i++) {
		if(!is_numeric($ip_ary[$i]) || (int)$ip_ary[$i] < 0 || (int)$ip_ary[$i] > 255) {
			return false;
		}
	}
	return true;
}

/**
 * 基本文字列とパラメータによって、新しい文字列を作成する。
 * @author tsubasa 2013/01/04
 * */
function get_format_string() {
	$params = func_get_args();
	$str = $params[0];
	for($i = 1; $i < count($params); $i++) {
		$str = str_replace("{".($i - 1)."}", $params[$i], $str);
	}
	return $str;
}

/**
 * データの表示順を切り替える時
 * SQLのORDER BY文を作成する。
 * @author tsubasa 2013/01/05
 * */
function change_order_by($new_order_by, $old_order_by) {
	if(str_replace(" DESC", "", $old_order_by) != str_replace(" DESC", "", $new_order_by)) {
		return $new_order_by;
	}
	$new_order_by = str_replace(" DESC", "", $new_order_by);
	if(strpos($old_order_by, " DESC")) {
		return str_replace(" DESC", "", $new_order_by);
	}
	return $new_order_by." DESC";
}
?>